<html>
<head>
<title>Test Service</title>
<script type="text/javascript" src="../../../../dojo/dojo.js" djConfig="isDebug: true, parseOnLoad: true"></script>
<script type="text/javascript">
dojo.provide("dojox.wire.ml.tests.markup.Service");

dojo.require("dojo.parser");
dojo.require("doh.runner");
dojo.require("dojox.wire.ml.Service");
dojo.require("dojox.wire.ml.Invocation");
dojo.require("dojox.wire.ml.Transfer");

dojox.wire.ml.tests.markup.Service = {
	query: {name: "a"}
};

dojo.addOnLoad(function(){
	doh.register("dojox.wire.ml.tests.markup.Service", [

		function test_Service_url(t){
			var d = new doh.Deferred();
			dojo.connect(dijit.byId("Invocation1"), "onComplete", function(result){
 				t.assertEqual("a", dojox.wire.ml.tests.markup.Service.target.a);
 				var o = result.toObject();
				t.assertEqual("a", o.item.name); // test XmlElement.toObject()
				t.assertEqual("b", o.item.data); // test XmlElement.toObject()

 				d.callback(true);
 			});
			dojo.connect(dijit.byId("Invocation1"), "onError", function(error){
				d.errback(error);
			});
			dojo.publish("invokeGetXml");
			return d;
		},

		function test_Service_serviceUrl(t){
			var d = new doh.Deferred();
			dojo.connect(dijit.byId("Invocation2"), "onComplete", function(){
				t.assertEqual("a", dojox.wire.ml.tests.markup.Service.result.item.name);
				d.callback(true);
			});
			dojo.connect(dijit.byId("Invocation2"), "onError", function(error){
				d.errback(error);
			});
			dojo.publish("invokeGetJson");
			return d;
		}

	]);
	doh.run();
});
</script>
</head>
<body>
<div dojoType="dojox.wire.ml.Service"
	id="Service1"
	url="Service/XML.smd"></div>
<div dojoType="dojox.wire.ml.Invocation"
	id="Invocation1"
	triggerTopic="invokeGetXml"
	object="Service1"
	method="get"
	parameters="dojox.wire.ml.tests.markup.Service.query">
</div>
<div dojoType="dojox.wire.ml.Transfer"
	trigger="Invocation1"
	triggerEvent="onComplete"
	source="arguments[0].item.name"
	target="dojox.wire.ml.tests.markup.Service.target.a"></div>
<div dojoType="dojox.wire.ml.Service"
	id="Service2"
	serviceType="JSON"
	serviceUrl="Service/{name}.json"></div>
<div dojoType="dojox.wire.ml.Invocation"
	id="Invocation2"
	triggerTopic="invokeGetJson"
	object="Service2"
	method="get"
	parameters="dojox.wire.ml.tests.markup.Service.query"
	result="dojox.wire.ml.tests.markup.Service.result"></div>
</body>
</html>
